Fall through to /usr/sbin/conntrack tool if /proc/net/nf_conntrack is
not available.
/proc/net/nf_conntrack has been obsoleted in recent kernels
(https://cateee.net/lkddb/web-lkddb/NF_CONNTRACK_PROCFS.html). This
change enables sys.net.conntrack() to return conntrack information via
the /usr/sbin/conntrack tool (if installed) instead.
Enables population of the /luci/admin/status/realtime/connections list.
Signed-off-by: James Fox <[email protected]>
[ format using tabs ]
Signed-off-by: Paul Donald <[email protected]>
end
function net.conntrack(callback)
- local ok, nfct = pcall(io.lines, "/proc/net/nf_conntrack")
- if not ok or not nfct then
+ local ok, fd = pcall(io.open, "/proc/net/nf_conntrack")
+ if not ok or not fd then
+ ok, fd = pcall(io.popen, "/usr/sbin/conntrack -L -o extended", "r")
+ end
+ if not ok or not fd then
return nil
end
+ nfct = fd:lines()
local line, connt = nil, (not callback) and { }
for line in nfct do